package math.geom2d;

import math.base.Point2d;
import math.base.Vector2d;
import math.geomUtils.CurveType;

/**
 * @author Saga
 *
 */
public class BSplineCurve2d extends BoundedCurve2d {

    @Override
    public CurveType getCurveType() {
        return CurveType.BSPLINE_CURVE;
    }

    @Override
    public void reverse() {

    }

    @Override
    public Curve2d reversed() {
        return null;
    }

    @Override
    public boolean isPeriodic() {
        return false;
    }

    @Override
    public double getPeriod() {
        return 0;
    }

    public Point2d calcValue(final double _param) {
        return null;
    }

    public Vector2d calcDerivative(final double _param) {
        return null;
    }

    public Vector2d calcDerivativeN(final double _param, final int _order) {
        return null;
    }

    public void calcValueAndDerivative1(final double _param, final Point2d _pt,
            final Vector2d _der1) {

    }

    public void calcValueAndDerivative2(final double _param, final Point2d _pt,
            final Vector2d _der1,
            final Vector2d _der2) {

    }

    public void calcValueAndDerivative3(final double _param, final Point2d _pt,
            final Vector2d _der1, final Vector2d _der2,
            final Vector2d _der3) {

    }

    private Point2d[] ctrlPoles;
    private double[] weights;
    private double[] knots;
    private int[] mults;
}
